The rapid expansion of information service and data industries has resulted in a need for computer systems to manage and store large amounts of data. As an example, financial service industry businesses such as banks, mutual fund companies or the like often operate large and complex data processing systems that require access to many hundreds of gigabytes or even terabytes of data. Data storage system developers have responded to these types of data storage requirements by integrating large capacity data storage systems, data communications devices and computer systems into networks called “storage networks” or “storage area networks” (SANs.) A storage area network is a collection of data storage systems that are networked with a number of host computer systems that operate as servers to access data stored in the data storage systems.
Elements of a typical conventional storage area network implementation include one or more connectivity devices such as high speed data switches or routers that interconnect the various data storage systems to each other and to one or more host or server computer systems (servers) that require access to (e.g., read and/or write) the data in the data storage systems on behalf of client software applications and/or client computer systems.
A developer or administrator of such a storage area network environment may install one or more distributed storage area network management software applications within the storage area network to manage or administer the various elements (i.e., devices, computer systems, storage systems, etc.) that operate within the storage area network. A SAN Administrator (i.e., a user) responsible for management of the storage area network operates the network management software application to perform management tasks such as performance monitoring, network analysis and remote configuration and administration of the various components operating within the storage area network.
A typical conventional storage area network management software application may have several different software components that execute independently of each other on different computer systems but that collectively interoperate together to perform network management. As an example, conventional designs of storage area network management applications can include console, server, agent and storage software components.
Generally, the server component operates as a central control process within the storage area network management application and coordinates communication between the console, storage and agent components. The console component often executes within a dedicated management workstation to allow a network administrator to visualize and remotely control and manage the various elements within the storage area network that are graphically represented by the console by a Graphical User Interface (GUI) Management of SAN environments is a daunting task and typically requires Storage Resource Management solutions such as EMC's Control Center (ECC) family of products, available from EMC Corporation of Hopkinton, Mass., U.S.A. ECC includes agents that are deployed on host computer systems in a SAN for the purpose of gathering data about the various managed resources in the SAN. The agents periodically collect network management data on components such as hosts, switches and storage systems, as well as on applications that operate in these environments. In other words, agents collect data associated with the managed resources, and that data is inserted into databases for use within Storage Resource Management solutions, such as ECC. ECC identifies the entire process of retrieving the collected data from agents to storage of such data as a transaction. Agents collect data periodically, such as nightly, on the resources and engage in a transaction to send the collected data to an ECC repository for access by ECC applications such as console and server processes that allow SAN administrators to manage the SAN.
There are often different respective agents specifically designed (e.g., coded in software) to remotely manage, control and collect data from data storage system resources, database applications, switches, and so forth. Agents receive remote management commands from the server (i.e., via a user at the console controlling the server) and apply functionality associated with those management commands to the managed resources within the storage area network for which those agents are designated to manage. Agents are also responsible for periodically (e.g., nightly) collecting configuration or management data concerning the storage area network resources that those agents are responsible for managing. As an example, an agent that is responsible for monitoring and control of a large data storage disk array system might be configured to collect management data from that storage array on a nightly basis. This agent data collection process might include communicating with the storage array to query the array for information concerning all devices (e.g., logical storage devices) configured at that time within the array. This may result in the collection of large amounts of management data from certain managed SAN resources, such as large storage array in which there can be many thousands of devices configured for operation. The management data collected from the agent is also known as agent data.
Agents transmit this collected agent data back to an assigned storage component, also known as a store process. The store process receives the collected agent data from the agent and processes and stores this information into a storage area network management database for access by the server and console components. The management database thus provides managed object data (i.e., agent data that has been stored in the management database) for all managed resources in the SAN. The console component can interact with the server component to obtain current network information such as performance, capacity, load or other data concerning managed resources within the storage area network by accessing the managed object data maintained in this manner within the network management database.